﻿using Elektronix.Class;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Elektronix.admin
{
    public partial class urunler : System.Web.UI.Page
    {

        private static List<productclass> lst;
        protected void Page_Load(object sender, EventArgs e)
        {
            var c = categories.categorigetir();
            var m = Markalar.markalarigetir();
            var d = productclass.durumlar();
            var h = categories.categorigetirHepsi();

            if (!IsPostBack)
            {
                ddlKategoriler.DataSource = c;
                ddlKategoriler.DataTextField = "categoryname";
                ddlKategoriler.DataValueField = "categoryID";
                ddlKategoriler.DataBind();

                ddlTedarikciler.DataSource = m;
                ddlTedarikciler.DataTextField = "brand";
                ddlTedarikciler.DataValueField = "supplierID";
                ddlTedarikciler.DataBind();

                ddlDurum.DataSource = d;
                ddlDurum.DataTextField = "status_adi";
                ddlDurum.DataValueField = "status";
                ddlDurum.DataBind();

                /////////////////////////////////////////////////////     

                ddlGncKategori.DataSource = c;
                ddlGncKategori.DataTextField = "categoryname";
                ddlGncKategori.DataValueField = "categoryID";
                ddlGncKategori.DataBind();

                ddlGncTedarikci.DataSource = m;
                ddlGncTedarikci.DataTextField = "brand";
                ddlGncTedarikci.DataValueField = "supplierID";
                ddlGncTedarikci.DataBind();

                ddlGncDurum.DataSource = d;
                ddlGncDurum.DataTextField = "status_adi";
                ddlGncDurum.DataValueField = "status";
                ddlGncDurum.DataBind();

                /////////////////////////////////////////////////////////

                ddlGetirKategori.DataSource = h;
                ddlGetirKategori.DataTextField = "categoryname";
                ddlGetirKategori.DataValueField = "categoryID";
                ddlGetirKategori.DataBind();

                ddlGetirTedarikci.DataSource = m;
                ddlGetirTedarikci.DataTextField = "brand";
                ddlGetirTedarikci.DataValueField = "supplierID";
                ddlGetirTedarikci.DataBind();

                ddlGetirDurum.DataSource = d;
                ddlGetirDurum.DataTextField = "status_adi";
                ddlGetirDurum.DataValueField = "status";
                ddlGetirDurum.DataBind();


                lst = productclass.urunlergetir();
                SayfaliKayitGetir(lst);



                if (Request.QueryString["sil"] != null)
                {
                    productclass p = new productclass();
                    p.productID = Convert.ToInt32(Request.QueryString["sil"]);
                    p.sil();
                }

                if (Request.QueryString["gnc"] != null)
                {
                    productclass p = new productclass();
                    p.productID = Convert.ToInt32(Request.QueryString["gnc"]);
                    p.urungetirIDli();
                    txtGncProductName.Text = p.productName;
                    txtGncStok.Text = p.stock.ToString();
                    txtGncPrice.Text = p.price.ToString();
                    txtGncModel.Text = p.model;
                    txtGncKritik.Text = p.reorderlevel.ToString();
                    txtGncDiscount.Text = p.discount.ToString();
                    ddlGncKategori.SelectedIndex = ddlGncKategori.Items.IndexOf(ddlGncKategori.Items.FindByValue(p.categoryID.ToString()));
                    ddlGncTedarikci.SelectedIndex = ddlGncTedarikci.Items.IndexOf(ddlGncTedarikci.Items.FindByValue(p.supplierID.ToString()));
                    ddlGncDurum.SelectedIndex = ddlGncDurum.Items.IndexOf(ddlGncDurum.Items.FindByValue(p.status.ToString()));

                    try
                    {
                        resimlerrepeater.DataSource = p.resimlerigetir();
                        resimlerrepeater.DataBind();

                    }
                    catch (Exception)
                    {

                    }


                }

            }
        }




        protected void btnEkle_Click(object sender, EventArgs e)
        {
            productclass p = new productclass();
            p.productName = txtUrunadi.Text;
            p.model = txtModel.Text;
            p.price = Convert.ToDouble(txtFiyat.Text);
            p.categoryID = Convert.ToInt32(ddlKategoriler.SelectedValue);  //-----
            p.supplierID = Convert.ToInt32(ddlTedarikciler.SelectedValue);  //-----
            p.brand = ddlTedarikciler.SelectedItem.ToString();    //-----
            p.stock = Convert.ToUInt32(txtstokmiktari.Text);
            p.unitsonorder = 0;
            p.reorderlevel = Convert.ToInt32(txtKritikStok.Text);
            p.discount = Convert.ToDouble(txtIndirim.Text);
            p.status = Convert.ToInt32(ddlDurum.SelectedValue);   //-----
            p.adddate = dateunit.sadecetarih();
            p.kaydet();
        }

        protected void btnGuncelle_Click(object sender, EventArgs e)
        {


            productclass p = new productclass();
            p.productID = Convert.ToInt32(Request.QueryString["gnc"]);
            p.productName = txtGncProductName.Text;
            p.model = txtGncModel.Text;
            p.price = Convert.ToDouble(txtGncPrice.Text);
            p.categoryID = Convert.ToInt32(ddlGncKategori.SelectedValue);  //-----
            p.supplierID = Convert.ToInt32(ddlGncTedarikci.SelectedValue);  //-----
            p.brand = ddlGncTedarikci.SelectedItem.ToString();    //-----
            p.stock = Convert.ToUInt32(txtGncStok.Text);
            p.unitsonorder = 0;
            p.reorderlevel = Convert.ToInt32(txtGncKritik.Text);
            p.discount = Convert.ToDouble(txtGncDiscount.Text);
            p.status = Convert.ToInt32(ddlGncDurum.SelectedValue);   //-----
            //   p.adddate = dateunit.sadecetarih();
            p.guncelle();
            Response.Redirect("urunler.aspx");
        }





        protected void ddlGetirKategori_SelectedIndexChanged(object sender, EventArgs e)
        {
            ViewState["sayfanumarasi"] = null;
            ViewState["sayfaadedi"] = null;
            if (ddlGetirKategori.SelectedItem.ToString() == "Hepsi")
            {
                lst = productclass.urunlergetir();
                SayfaliKayitGetir(lst);

            }

            else
            {
                productclass p = new productclass();
                p.categoryID = Convert.ToInt32(ddlGetirKategori.SelectedValue);
                lst = p.urunlergetircatIDli();
                SayfaliKayitGetir(lst);

            }
        }

        protected void btnFile_Click(object sender, EventArgs e)
        {
            if (FileuploadUrun.HasFile)
            {
                string uzanti = FileuploadUrun.FileName.Split('.')[(FileuploadUrun.FileName.Split('.').Length - 1)];
                if (uzanti == "jpg" || uzanti == "png" || uzanti == "bmp" || uzanti == "gif")
                {
                    // s = 2014-02-21T13:45:08
                    string dosyaismi = "/dosyalar/" + DateTime.Now.ToString("s").Replace(':', '-') + "." + uzanti;
                    FileuploadUrun.SaveAs(Server.MapPath(dosyaismi));
                    SqlConnection sqlcon = connection.baglanti;
                    SqlCommand sqlcmd = new SqlCommand("insert into resimler values (@urunID, @path)", sqlcon);
                    sqlcmd.Parameters.AddWithValue("@urunID", Request.QueryString["gnc"]);
                    sqlcmd.Parameters.AddWithValue("@path", dosyaismi);
                    sqlcon.Open();
                    sqlcmd.ExecuteNonQuery();
                    sqlcon.Close();
                }
            }
            else
            {

            }
        }


        public PagedDataSource Sayfaliveri { get; set; }

        private void SayfaliKayitGetir(List<productclass> list)
        {
            RepeaterUrunler.Dispose();
            Sayfaliveri = new PagedDataSource()
            {
                DataSource = list,
                AllowPaging = true,
                PageSize = 10,
                CurrentPageIndex = sayfanumarasi
            };


            sayfadadedi = Sayfaliveri.PageCount - 1;

            RepeaterUrunler.DataSource = Sayfaliveri;
            RepeaterUrunler.DataBind();



            lblAktifSayfa.Text = "Sayfa" + (Sayfaliveri.CurrentPageIndex + 1) + "/" + (Sayfaliveri.PageCount) + "- Kayit Sayisi" + (Sayfaliveri.DataSourceCount);

            btnGeri.Enabled = !Sayfaliveri.IsFirstPage;
            btnIleri.Enabled = !Sayfaliveri.IsLastPage;

        }



        private int sayfanumarasi
        {
            get
            {
                if (ViewState["sayfanumarasi"] != null)
                {
                    return Convert.ToInt32(ViewState["sayfanumarasi"]);
                }
                else
                {
                    return 0;
                }
            }

            set
            {

                ViewState["sayfanumarasi"] = value;

            }

        }


        private int sayfadadedi
        {
            get
            {
                if (ViewState["sayfaadedi"] != null)
                {
                    return Convert.ToInt32(ViewState["sayfaadedi"]);
                }
                else
                {

                    return 0;
                }
            }

            set
            {
                ViewState["sayfaadedi"] = value;

            }
        }

        protected void btnGeri_Click(object sender, EventArgs e)
        {
            sayfanumarasi -= 1;
            SayfaliKayitGetir(lst);
        }

        protected void btnIleri_Click(object sender, EventArgs e)
        {
            sayfanumarasi += 1;
            SayfaliKayitGetir(lst);
        }

        protected void ddlGetirTedarikci_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            switch (Button1.Text)
            {
                case "Detayli Arama Aç":
                    ddlGetirKategori.AutoPostBack = false;
                    ddlGetirTedarikci.AutoPostBack = false;
                    ddlGetirDurum.AutoPostBack = false;
                    Button2.Enabled = true;
                    Button1.Text = "Detayli Arama Kapat";
                    break;

                case "Detayli Arama Kapat":
                    ddlGetirKategori.AutoPostBack = true;
                    ddlGetirTedarikci.AutoPostBack = true;
                    ddlGetirDurum.AutoPostBack = true;
                    Button2.Enabled = false;
                    Button1.Text = "Detayli Arama Aç";
                    break;
                default:
                    break;
            }

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            ViewState["sayfanumarasi"] = null;
            ViewState["sayfaadedi"] = null;
            productclass p = new productclass();
            p.categoryID = Convert.ToInt32(ddlGetirKategori.SelectedValue);
            p.supplierID = Convert.ToInt32(ddlGetirTedarikci.SelectedValue);
            p.status = Convert.ToInt32(ddlGetirDurum.SelectedValue);
            p.price = Convert.ToDouble(txtMaxFiyat.Text);
            p.stock = Convert.ToInt32(txtMaxStok.Text);
            SayfaliKayitGetir(p.caprazsorgu());




        }


    }
}